export default {
	// 开启命名空间
	namespaced: true,
	//state
	state: () => ({
		   cart: JSON.parse(uni.getStorageSync('cart') || '[]')
	}),
	mutations: {
		
		addCart(state, goods) {
			// 根据提交的商品的Id，查询购物车中是否存在这件商品
			// 如果不存在，则 findResult 为 undefined；否则，为查找到的商品信息对象
			const findResult = state.cart.find(item => item.goods_id === goods.goods_id)

			if (!findResult) {
				// 如果购物车中没有这件商品，则直接 push
				state.cart.push(goods)
			} else {
				// 如果购物车中有这件商品，则只更新数量即可
				 findResult.goods_count++
			}
			this.commit('cart/saveToStorage')
		},
		saveToStorage(state){
			uni.setStorageSync('cart',JSON.stringify(state.cart))
		},
		//更新 购物车勾选状态
		updategoods(state,goods){
			//根据 id 来查询购物车对应商品信息对象
			const result = state.cart.find(item => item.goods_id === goods.goods_id)
			//如果有对应商品信息对象
			if(result){
				//更对打钩状态
				result.goods_state = goods.goods_state
				// 保存到本地
				this.commit('cart/saveToStorage')
			}
		},
		//删除
		removegoods(state,goods_id){
			// 调用过滤器
			state.cart = state.cart.filter(x=> x.goods_id !== goods_id)
			// 保存到本地
			this.commit('cart/saveToStorage')
		},
		reduce(state,goods_id){
			state.cart = state.map(item => {
				if(item.goods_id == goods_id){
					
				}
			})
		}
	},
	// 模块的 getter 属性
	getters:{
		   // 统计购物车中商品的总数量
		   total(state) {
		      let c = 0
		      // 循环统计商品的数量，累加到变量 c 中
		      state.cart.forEach(item => c += item.goods_count)
		      return c
		   }
	}

}
